1. Statement of the Technical Field
The present invention relates to the field of application monitoring and more particularly to discovering structural information for an application under test for use in configuring an application monitor.
2. Description of the Related Art
Monitoring applications detect and respond to operational problems, oftentimes before the end user becomes aware of those problems. Consequently, application monitoring systems have become a common requirement, especially for revenue-generating production environments. Most administrators understand the need for application monitoring. Infrastructure teams, in fact, typically monitor the basic health of application servers by keeping an eye on CPU utilization, throughput, memory usage and the like. However, there are many parts to an application server environment, and understanding which metrics to monitor for each of these pieces differentiates the environments that can effectively anticipate production problems from those that might get overwhelmed by them.
When applied in an appropriate context, application monitoring is more than just the data that shows how an application is performing technically. Information such as page hits, frequency and related statistics contrasted against each other can also show which applications, or portions thereof, have consistently good or bad performance. Management reports generated from the collected raw data can provide insights on the volume of users that pass though the application. An online store, for example, could compare the dollar volume of a particular time segment against actual page hits to expose which pages are participating in higher or lower dollar volumes.
To properly configure a monitoring solution for a target application, it can be important to understand the structure and layout of the target application. In this regard, the gross static and dynamic structural information of the target application can provide critical baseline information required to construct a monitoring solution for the target application. Discovering the gross static and dynamic structural information for the target application, however, can be manually intensive and largely inadequate.
Specifically, the manual process of discovering the gross static and dynamic structural information for the target application can require a generic description of the target application, typically provided by the developer of the target application. Using the generic description, the testing engineer can architect a specific monitoring configuration. Finally, the monitoring configuration can be reduced to monitoring logic forming the foundation of the monitoring application. To produce the monitoring application in this manner, however, can be a labor intensive process that is both difficult and error-pone to construct, test, deploy and customize.
A key deficiency in the art is the correlation of static information contained in configuration files and similar information repositories with dynamic information obtained from the execution of the application. Well-known systems exist for tracking the files opened, read from, and written to during the application's normal lifecycle; similar systems exist for tracking the networking interfaces used, the TCP/IP ports used, and other operating system resources. No known system combines information from both sources to derive a description of both the actual behavior as well as the intended behavior, and to mine the combined information to determine how the actual behavior is specified from the configuration. Performing such a combination generally requires the insight, patience and judgement of one of extraordinary skill in the relevant arts.